package com.toonan.system.service;

import com.baomidou.mybatisplus.service.IService;
import com.toonan.base.matatype.Dto;
import com.toonan.system.model.Role;
import com.toonan.system.model.RoleMenu;
import com.toonan.system.model.RoleUser;

import java.util.List;


import com.baomidou.mybatisplus.plugins.Page;


/**
 * <p>
 * 角色表 服务实现类
 * </p>
 *
 * @author 陈骑元
 * @since 2018-10-02
 */
public interface IRoleService extends  IService<Role>{
   
  
     /**
	 * 根据Dto查询并返回数据持久化对象集合
	 * 
	 * @return List<Role>
	 */
	public List<Role> list(Dto pDto);
    /**
	 * 根据Dto查询并返回分页数据持久化对象集合
	 * 
	 * @return Page<Role>
	 */
	public Page<Role> listPage(Dto pDto);
		
	/**
	 * 根据Dto模糊查询并返回数据持久化对象集合(字符型字段模糊匹配，其余字段精确匹配)
	 * 
	 * @return List<Role>
	 */
	public List<Role> like(Dto pDto);

	/**
	 * 根据Dto模糊查询并返回分页数据持久化对象集合(字符型字段模糊匹配，其余字段精确匹配)
	 * 
	 * @return Page<Role>
	 */
	public Page<Role> likePage(Dto pDto);
	/**
	 * 根据数学表达式进行数学运算
	 * 
	 * @param pDto
	 * @return String
	 */
	 public String calc(Dto pDto);
	 /**
	  * 移除角色
	  */
	public boolean removeRole(String roleId);
	/**
	 * 批量授权用户 每个用户只允许一个角色
	 */
	public boolean batchSaveRoleUser(String roleId, List<String> userIdList,String createBy) ;
	/**
	 * 撤销用户授权
	 */
	public boolean batchRemoveRoleUser(String roleId, List<String> userIdList);

	/**
	 * 用户菜单授权
	 */
	public boolean batchSaveRoleMenu(String roleId, List<String> menuIdList,String userId) ;
	/**
	 * 
	 * 简要说明：选择角色用户
	 * 编写者：陈骑元
	 * 创建时间：2019年1月21日 下午10:27:39
	 * @param 说明
	 * @return 说明
	 */
	public RoleUser selectRoleUser(String userId);
	/**
	 * 
	 * 简要说明：查询角色菜单
	 * 编写者：陈骑元
	 * 创建时间：2019年6月12日 下午10:16:37
	 * @param 说明
	 * @return 说明
	 */
	public List<RoleMenu> selectRoleMenu(String roleId);
	
}
